package Demo1;

public class D1 {
    // 定义一个汽车类
    class Car {
        private String color;
        private int speed;

        public Car(String color, int speed) {
            this.color = color;
            this.speed = speed;
        }

        public void drive() {
            System.out.println("The " + color + " car is driving at " + speed + " km/h.");
        }
    }

    // 定义一个人类
    class Person {
        private String name;
        private Car car; // 组合关系，一个人拥有一辆车

        public Person(String name, Car car) {
            this.name = name;
            this.car = car;
        }

        public void driveCar() {
            car.drive(); // 调用汽车类的drive方法
        }
    }

    // 测试代码
    public class Main {
        public void main(String[] args) {
            Car myCar = new Car("red", 80); // 创建一个红色的汽车对象
            Person me = new Person("Tom", myCar); // 创建一个名为Tom的人对象，并将汽车对象作为参数传入
            me.driveCar(); // 调用人的driveCar方法，间接调用汽车的drive方法
        }
    }

}
